/* 有获取表格数据的页面的导出数据逻辑
 * dependence - tableCoreMixin， tableBtnLoadingMixin, ConfirmTempMixin
 * 需要提供 - currentExportApi - 当前页面的导出接口
-------------------------- */
const tableExportMixin = {
  methods: {
    // 导出数据
    exportCurrent () {
      this.ConfirmTemp(`确认导出当前检索条件下的数据吗`, () => {
        this.AsyncLoading('导出数据', this.exportApi)
      })
    },
    // 导出接口
    async exportApi () {
      const [ err, rs ] = await this.currentExportApi()
      if (err) return this.$message.error('操作失败')
      const src = rs.file_url
      this.exportByIframe(src)
    },
    exportByIframe (src) {
      function sa () {
        if (window.frames.exportIframe.document.readyState !== 'complete') {
          setTimeout(sa(), 100)
        } else {
          window.frames.exportIframe.document.execCommand('SaveAs')
          this.$message.success('导出成功')
        }
      }
      window.frames.exportIframe.location.href = src
      sa()
    }
  }
}

export default tableExportMixin
